#ifndef __POINT_LIGHT_H__
#define __POINT_LIGHT_H__

#include "Light.h"
#include "Vector3.h"

class PointLight : public Light
{
public:
	PointLight();

	virtual Type get_type() const;
	Vector3& location();

	virtual void compute_diffuse( const Matrix3& world_rotate,
		const Vector3& world_translate, Real world_scale,
		const Vector3* vertex, const Vector3* normal,
		unsigned int num_lights, const bool* visible,
		Color* diffuse );

	virtual void compute_specular( const Matrix3& world_rotate,
		const Vector3& world_translate, Real world_scale,
		const Vector3* vertex, const Vector3* normal,
		unsigned int num_lights, const bool* visible, const Vector3& camera_model_location,
		Color* diffuse );
protected:
	Vector3 m_location;
};

#include "PointLight.inl"

#endif
